Web-based applications are increasingly used by client devices to provide functionality to users. Unlike natively-executing applications, web-based applications often require network round-trips and associated computational processing. Accordingly, it is difficult for such web-based client applications to offer the responsiveness and rich features of natively-executing applications.
Some negative effects of these requirements may be mitigated by caching data on the client device. For example, a web application may maintain a cache in random access memory of the client device, or may maintain a persistent cache in a persistent memory of the client device. In the case of an “in-memory” cache, the cache ceases to exist once the web application is closed, thereby foreclosing many potential advantages of cached client-side data.
A client-side persistent cache also presents obstacles. The content of the cache should remain relevant without consuming excessive memory. Different types of web applications and environments may require different types of caches. Persistent storage is also typically orders of magnitude slower than in-memory storage. Additionally, particularly for enterprise applications, confidential content stored in a persistent cache should remain secure in a case that an unauthorized individual gains access to the client device storing the persistent cache.